package com.info.zhiduoduo.repository.dto.project;

import com.baomidou.mybatisplus.annotations.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.info.zhiduoduo.common.utils.DateUtil;

import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)  //setter return this;
@ToString
public class ProjectDto {

	private Integer projectid;
	private Integer compid;
	private String compname;
	private String compnickname;
	private String compemail;
	private String creditcode;
	/**
	 * 项目名
	 */
	private String projectname;
	/**
	 * 创客ID
	 */
	private Integer userid;
	private String username;
	/**
	 * 分类ID
	 */
	private Integer categoryid;
	/**
	 * 分类名
	 */
	private String categoryname;
	/**
	 * 1.公开 2私密
	 */
	private Integer projecttype;
	/**
	 * 项目周期
	 */
	private Integer projectcycle;
	/**
	 * 项目描述
	 */
	private String projectintro;
	/**
	 * 预算起
	 */
	private BigDecimal budgetstart;
	/**
	 * 预算末
	 */
	private BigDecimal budgetend;
	/**
	 * 创客工作室是否支持专票 0：否 1：是
	 */
	private int specialinvoice;
	/**
	 * 1.普票2专票
	 */
	private Integer invoicetype;
	/**
	 * 发票内容
	 */
	private String invoicecontent;
	/**
	 * 创客发票范围
	 */
	private String invoicescope;
	/**
	 * 项目金额
	 */
	private BigDecimal projectamount;
	/**
	 * 项目成交金额
	 */
	private BigDecimal projectdealamount;
	/**
	 * 项目服务费
	 */
	private BigDecimal projectservicecharge;
	/**
	 * 项目税金
	 */
	private BigDecimal projecttaxfee;
	/**
	 * 项目开始时间
	 */
	private Date projectstart;
	/**
	 * 项目结束时间
	 */
	private Date projectfinish;
	/**
	 * 验收图片证据url
	 */
	private String attachmentUrl;
	/**
	 * 拒绝验收
	 */
	private String rejectReason;
	/**
	 * 是否需要自动验收 0:否 1:是
	 */
	private Integer autoCheck;

//	/** 支付方式 1:得仕九歌商户号代付 2:线下支付 3:企业商户号支付 4:平台线下代付 5:得仕武圣商户号代付 */
//	private int payType;

	/** 线下支付状态: 1:未支付 2:已支付 3:已处理 */
	private int offlinePayState;
	/**
	 * 1草稿 2待发布 4已发布 6竞标中 8竞标结束 10进行中 12验收中 13 验收完成 14 拒绝验收 15:待线下支付 20已完成 44删除
	 */
	private Integer state;
	private Integer arbitrate;
	private Date createtime;
	/** 项目剩余天数 */
	private int leftDays;

	@ApiModelProperty("支付给创客项目款,交易id")
	private int tradeid;

	@ApiModelProperty("支付给创客项目款,交易状态 0:创建中 1:已受理 2:处理中 3:交易成功 4:交易失败 5:交易拒绝")
	private int tradestate;

	@ApiModelProperty("支付给创客项目款,是否已经重新提交交易 0：否 1：是")
	private int repay;

	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录id")
	private int jiugeChargeTradeid;

	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录状态")
	private int jiugeChargeTradestate;

	@ApiModelProperty("企业自有商户号账户支付项目时,支付给九歌的手续费交易记录,是否已经重新提交交易 0：否 1：是")
	private int jiugeChargeRepay;

	/** 企业对应的商务经理id */
	private int businessManagerId;
	/** 企业对应的商务经理 */
	private String businessManagerName;

	@ApiModelProperty("合伙人提现id,此项目为提现项目")
	private String partnerWithdrawId;

	@ApiModelProperty("商品明细文件路径")
	private String commodityDetailFilePath;

	@ApiModelProperty("招标类型 1：邀约 2：公开")
	private int bidType;

	@JsonFormat(pattern = DateUtil.FORMAT_STYLE_2, timezone = DateUtil.TIME_ZONE_CHINA)
	@ApiModelProperty("公开招标结束日期，字符串yyyy-MM-dd")
	private Date bidEnd;

	@JsonFormat(pattern = DateUtil.FORMAT_STYLE_2, timezone = DateUtil.TIME_ZONE_CHINA)
	@ApiModelProperty("公开招标项目完成截止日期，字符串yyyy-MM-dd")
	private Date bidProjectFinish;

	@ApiModelProperty("公开招标审核结果备注")
	private String bidVerifyRemark;

	@ApiModelProperty("是否通知乙方上传交付物 0：否 1：是")
	private int notifyUploadDelivery;

	@ApiModelProperty("当前创客是否已经投标（公开招标项目专用）0.否 1.是")
	private int bid;

	@ApiModelProperty("创客姓名")
	private String realname;

	@ApiModelProperty("记录项目过程中的报错信息")
	private int errorCode;
	@ApiModelProperty("记录项目过程中的报错信息")
	private String errorMsg;

	@ApiModelProperty("项目交付文件路径")
	private String deliveryPath;

	@ApiModelProperty("企业主体ID")
	private Integer partyId;

	@ApiModelProperty("企业主体名称")
	private String partyName;

	@ApiModelProperty("支付方式id(表zdd_payment)")
	private Integer payId;

	@ApiModelProperty("支付方式名称")
	private String payName;

	@ApiModelProperty("发票状态 1等待受理 2申请中 3受理中 4已完成(出票) 5被拒绝")
	private int invoiceState;

}
